using System;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("JaraxxusHeroSpell")]
	public class JaraxxusHeroSpell : Spell
	{
		public PowerTask m_heroPowerTask => method_3<PowerTask>("m_heroPowerTask");

		public PowerTask m_weaponTask => method_3<PowerTask>("m_weaponTask");

		public JaraxxusHeroSpell(IntPtr address, string className)
			: base(address, className)
		{
		}

		public JaraxxusHeroSpell(IntPtr address)
			: this(address, "JaraxxusHeroSpell")
		{
		}

		public new bool AddPowerTargets()
		{
			return method_11<bool>("AddPowerTargets", Array.Empty<object>());
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}

		public Entity LoadCardFromTask(PowerTask task)
		{
			return method_14<Entity>("LoadCardFromTask", new object[1] { task });
		}

		public Card GetCardFromTask(PowerTask task)
		{
			return method_14<Card>("GetCardFromTask", new object[1] { task });
		}

		public void Reset()
		{
			method_8("Reset");
		}

		public void Finish()
		{
			method_8("Finish");
		}

		public void PlayCardSpells(Card heroPowerCard, Card weaponCard)
		{
			method_8("PlayCardSpells", heroPowerCard, weaponCard);
		}

		public void OnSpellFinished_HeroPower(Spell spell, object userData)
		{
			method_8("OnSpellFinished_HeroPower", spell, userData);
		}

		public void OnSpellFinished_Weapon(Spell spell, object userData)
		{
			method_8("OnSpellFinished_Weapon", spell, userData);
		}
	}
}
